# 你想使用操作 类文件对象 的程序来操作文本或二进制字符串。

# 当你想模拟一个普通的文件的时候StringIO 和BytesIO 类是很有用的。
# 比如，在单元测试中，你可以使用StringIO 来创建一个包含测试数据的类文件对象，
# 这个对象可以被传给某个参数为普通文件对象的函数。
# 需要注意的是， StringIO 和BytesIO 实例并没有正确的整数类型的文件描述符。
# 因此，它们不能在那些需要使用真实的系统级文件如文件，管道或者是套接字的程序中使用。

import io
s = io.StringIO()
s.write('Hello World\n')

print('This is test', file=s)
print(s.getvalue())

s = io.StringIO('Hello\nWorld\n')
print(s.read(4))
print(repr(s.read()))

b = io.BytesIO()
b.write(b'binary data')
print(b.getvalue())
